package com.whfc.ms.api.safety.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.safety.dto.*;
import com.whfc.safety.param.SafetyDangerAddParam;
import com.whfc.safety.param.SafetyDangerAttachSaveParam;
import com.whfc.safety.param.SafetyDangerEditParam;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Description 危大工程
 * @Author hw
 * @Date 2021-08-19 16:02
 * @Version 1.0
 */
public interface MsSafetyDangerService {

    /**
     * 危大字典列表
     *
     * @return
     */
    ListData<SafetyDangerDictDTO> dictList();

    /**
     * 危大字典-管控要点列表
     *
     * @param dictId
     * @return
     */
    ListData<SafetyDangerDictControlDTO> dictControlList(Integer dictId);

    /**
     * 统计危大工程台账
     *
     * @param deptId
     * @return
     */
    DangerStatisticalDTO statistical(Integer deptId);

    /**
     * 危大工程台账列表
     *
     * @param deptId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyDangerDTO> list(Integer deptId, Integer pageNum, Integer pageSize);

    /**
     * 危大工程台账导出
     *
     * @param deptId
     */
    void exportDanger(Integer deptId);

    /**
     * 新建危大工程台账
     *
     * @param param
     */
    void addDanger(SafetyDangerAddParam param);

    /**
     * 编辑危大工程台账
     *
     * @param param
     */
    void editDanger(SafetyDangerEditParam param);

    /**
     * 删除危大工程台账
     *
     * @param dangerId
     */
    void delDanger(Integer dangerId);

    /**
     * 查询当前进度、施工旁站、一般验收、排查记录
     *
     * @param dangerId
     * @param type
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyDangerExtDTO> dangerExt(Integer dangerId, Integer type, Integer pageNum, Integer pageSize);

    /**
     * 删除当前进度、施工旁站、一般验收、排查记录
     *
     * @param dangerId
     * @param extId
     * @param type
     */
    void dangerExtDel(Integer dangerId, Integer extId, Integer type);

    /**
     * 危大工程资料列表
     *
     * @param dangerId
     * @return
     */
    ListData<SafetyDangerAcceptDTO> dangerAttachList(Integer dangerId);

    /**
     * 保存危大文件
     *
     * @param param
     */
    void dangerAttachSave(SafetyDangerAttachSaveParam param);

    /**
     * 问题隐患列表
     *
     * @param dangerId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyCheckDTO> dangerCheckList(Integer dangerId, Integer pageNum, Integer pageSize);

    /**
     * 问题隐患列表
     *
     * @param checkId
     * @return
     */
    SafetyCheckDescDTO dangerCheckDesc(Integer checkId);

    /**
     * 删除问题隐患
     *
     * @param dangerId
     * @param checkId
     */
    void dangerCheckDel(Integer dangerId, Integer checkId);

    /**
     * 验收表验收列表
     *
     * @param dangerId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyDangerAcceptDTO> dangerAcceptList(Integer dangerId, Integer pageNum, Integer pageSize);

    /**
     * 删除问题隐患
     *
     * @param dangerId
     */
    void dangerComplete(Integer dangerId);

    /**
     * 管控要点
     *
     * @param dangerId
     * @return
     */
    ListData<SafetyDangerControlDTO> dangerControlList(Integer dangerId);

    /**
     * 验收表验收文件上传
     *
     * @param file
     * @param param
     * @param name
     * @param size
     */
    void acceptUploadImg(MultipartFile file, SafetyDangerAttachSaveParam param, String name, Integer size);

    /**
     * 删除验收表验收
     *
     * @param attachId
     */
    void dangerAcceptDel(Integer attachId);

}
